iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0
DevOps

DevOps需要的技能樹...(應該)都點得到!系列 第 15

Day 15: 配置 Prometheus 監控 Kubernetes 叢集

  • 分享至 

  • xImage
  •  

本章節「OpenSource」概要

Day 10: ELK Stack 安裝與多節點
Day 11: Logstash 配置與查詢系統日誌
Day 12: Redis 安裝與後台
Day 13: Redis Cluster 集群配置
Day 14: Prometheus 與 Grafana 安裝與監控
Day 15: 配置 Prometheus 監控 Kubernetes 叢集
Day 16: 使用 Grafana 進行數據視覺化及串接告警

認識Helm

Helm 是 Kubernetes 的包管理工具,用於簡化應用程序的部署和管理。它利用「Chart」這些預定義的模板和配置文件來定義、安裝和升級 Kubernetes 應用。Helm 使得應用的部署過程更一致、可重用,並且可以方便地管理複雜的應用配置和依賴關係。通過 Helm,可以快速地部署和升級應用,並輕鬆地回滾到先前的版本。

安裝Helm

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

安裝kube-prometheus-stack

#加入分支
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
#更新
helm repo update
#生成配置文件(待會會用到)
helm show values prometheus-community/kube-prometheus-stack >./values.yaml
#編輯這個配置文件
sudo nano values.yaml

因爲它是全家餐,所以我會先把不必要的功能關掉
例如:Grafana我們已經有架設了,所以配置為false關閉

https://ithelp.ithome.com.tw/upload/images/20240806/20168384y0CO7HZ081.jpg

還有一點是將prometheus的位置(端口)暴露出來,配置為NodePort

https://ithelp.ithome.com.tw/upload/images/20240806/20168384Zvsmd0NGbE.jpg

修改完成之後就能正式進行安裝

#安裝(在master節點上做)
helm install -f values.yaml kube-prometheus-stack prometheus-community/kube-prometheus-stack
#檢查服務有沒有起來
kubectl --namespace default get pods -l "release=kube-prometheus-stack"
#檢查端口號碼
kubectl get svc
#如果要卸載
helm uninstall kube-prometheus-stack
#檢查是否已安裝
helm ls
kubectl get pod -n default
#查看暴露端口
kubecte get svc -n default

https://ithelp.ithome.com.tw/upload/images/20240806/20168384pR64SZxPft.jpg

瀏覽器訪問端口:30090 檢查監控目標是否都為UP

https://ithelp.ithome.com.tw/upload/images/20240817/2016838492lNhNyCUq.jpg

------以下是例外情形debug------

需要修改k8s配置文件中的監聽地址

#修改監聽端口kube-controller-manager(在master主機)
sed -e "s/- --bind-address=127.0.0.1/- --bind-address=0.0.0.0/" -i /etc/kubernetes/manifests/kube-controller-manager.yaml

#修改監聽端口kube-scheduler(在master主機)
sed -e "s/- --bind-address=127.0.0.1/- --bind-address=0.0.0.0/" -i /etc/kubernetes/manifests/kube-scheduler.yaml

#或者你也可以直接編輯文件(這行只是範例,不用執行)
sudo vi /etc/kubernetes/manifests/kube-controller-manager.yaml

剩下kube-proxy了

#修改監聽端口kube-proxy
kubectl edit cm/kube-proxy -n kube-system

在kind底下加入這行
kind: KubeProxyConfiguration
metricsBindAddress: "0.0.0.0:10249"

刪除pod並重啟
kubectl delete pod -l k8s-app=kube-proxy -n

------檢查用的筆記------

k8s相關組件的預設端口如下:

kube-controller-manager
<K8S主節點>:10257
kube-etcd
<K8S主節點>:2381
kube-proxy
<K8S主節點>:10249
kube-scheduler
<K8S主節點>:10259
coredns
<K8S主節點>:9153

------檢查用的筆記------

------以上是例外情形debug------

再來就能參照上一篇文章的步驟,回到Grafana新增這一條數據源

  1. 新增數據源
    從Home > Connections > Connect data > 搜尋Prometheus > Create
    填入主機地址,其他維持預設
    並將這個新的數據源命名為「Prometheus-K8S」等容易識別的名字
    記得這次的端口號是30090(或其他設置)喔!

  2. 導入面板模板
    模板來源:官方的Grafana Labs上面所分享
    從 Home > Dashboards > Import > 貼入ID「18283」之後點擊「Load」
    數據源記得都要選中剛才新增的「Prometheus-K8S」才保存退出喔

https://ithelp.ithome.com.tw/upload/images/20240806/20168384LP0uzmuitH.jpg

https://ithelp.ithome.com.tw/upload/images/20240806/20168384P989nQ4d82.jpg


上一篇
Day 14: Prometheus 與 Grafana 安裝與監控
下一篇
Day 16: 使用 Grafana 進行數據視覺化及串接告警
系列文
DevOps需要的技能樹...(應該)都點得到!25
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言